var app = require("express")();
var fs = require("fs");
var path = require("path");
var mongoose = require('mongoose');
var http = require('http').Server(app);
var io = require('socket.io')(http);
require('./model');
// var usersConfig = require('./bds/config');
// var Users = require('./bds/models/users')

//设置跨域访问
app.all("*", function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By", " 3.2.1");
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

// mongoose.connect(usersConfig.users, {
//     useNewUrlParser: true
// })

app.get('/data/postmsg', function (req, res) {
    /** 获取Model，创建Book的实例 Entity **/
    var Book = mongoose.model('Book');
    var book = new Book({
        time: req.query.time,
        msg: req.query.msg,
        ip: req.ip.split(":")[3]
    });
    console.log(req.query.msg)
    /** 插入数据 **/
    book.save(
        function (err) { // 执行保存，并查看返回情况
            if (err) {
                console.log(err)
            }
            else {
                res.jsonp({
                    status: 1
                })
            }
        }
    )
})
app.get('/data/msg', function (req, res) {
    /** 获取Model，创建Book的实例 Entity **/
    var Book = mongoose.model('Book');
    /** 查询所有数据 **/
    Book.find(function (err, docs) {
        if (err) {
            console.log('err:', err);
            res.json({
                state: 0
            })
            return;
        } else {
            res.json(docs)
        }
    })
})
// app.get('/update', function (req, res) {
//     /** 获取Model，创建Book的实例 Entity **/
//     var Book = mongoose.model('Book');
//     /** 查询一条数据，并修改 **/
//     Book.findOne({
//         name: req.query.name,
//     }, function (err, doc) {
//         if (err) {
//             console.log('err:', err);
//             return;
//         }
//         doc.name = req.query.rename;
//         doc.save();
//         console.log('findOne result:', doc)
//         res.json({
//             state: 1
//         })
//     })
// })
// app.get('/remove', function (req, res) {
//     /** 获取Model，创建Book的实例 Entity **/
//     var Book = mongoose.model('Book');
//     /**查询一条数据，并删除**/
//     Book.findOne({
//         name: req.query.name
//     }, function (err, doc) {
//         if (err) {
//             console.log('findOne err:', err);
//             return;
//         }
//         if (doc) {
//             doc.remove();
//             res.json({
//                 state: 1
//             })
//         }
//     })
// })




var flielist = [];
var usernameList = [];
// 获取聊天记录
fs.readFile(path.join(__dirname, "data/chatData.json"), function (err, data) {
    if (err) {
        res.end("404");
    } else {
        flielist = JSON.parse(data.toString("utf-8"));
    }
});

app.get("/register", function (req, res) {
    let userarr = [];
    // 获取已注册的用户
    fs.readFile(path.join(__dirname, "data/username.json"), function (err, data) {
        if (err) {
            res.end("404");
        } else {
            usernameList = JSON.parse(data.toString("utf-8"));
            userarr = usernameList;
            // 判断用户名是否存在
            if (userarr.length == 0) {
                console.log(userarr.length);
                // 用户名不存在写入数据库，提示注册成功
                userarr.unshift({
                    username: req.query.username,
                    password: req.query.password,
                    time: req.query.time,
                    ip: req.ip.split(":")[3]
                });
                //把数组写入文件
                fs.writeFile(
                    path.join(__dirname, "data/username.json"),
                    JSON.stringify(userarr),
                    err => {
                        if (err) {
                            console.log(err);
                        }
                    }
                );
                res.status(200);
                console.log(req.query.username + "第一个注册用户");
                res.jsonp({
                    status: 1
                });
            } else {
                var isTrue = true;
                userarr.forEach(item => {
                    // 用户名存在写入，提示用户名存在
                    if (
                        // item.ip == req.ip.split(":")[3] ||
                        item.username == req.query.username
                    ) {
                        console.log(
                            req.query.username + "用户名存在请重新输入"
                        );
                        isTrue = false;
                        res.jsonp({
                            status: -1
                        });
                        return false;
                    }
                });
                if (isTrue) {
                    // 用户名不存在写入数据库，提示注册成功
                    userarr.unshift({
                        username: req.query.username,
                        password: req.query.password,
                        time: req.query.time,
                        ip: req.ip.split(":")[3]
                    });
                    //把数组写入文件
                    fs.writeFile(
                        path.join(__dirname, "data/username.json"),
                        JSON.stringify(userarr),
                        err => {
                            if (err) {
                                console.log(err);
                            }
                        }
                    );
                    res.status(200);
                    console.log(req.query.username + "注册成功");
                    res.jsonp({
                        status: 1
                    });
                }
            }
        }
    });
});
app.get("/data/msg", function (req, res) {
    res.status(200);
    res.json(flielist);
});
// app.get("/data/postmsg", function (req, res) {
//     // readfile('data/chatData.json', flielist)
//     var msgdata = flielist;
//     // var name = ''
//     // if (req.ip.split(':')[3] == '192.168.66.132') {
//     //     name = '郭占铎'
//     // }
//     // if (req.ip.split(':')[3] == '192.168.66.138') {
//     //     name = '房德静文'
//     // }
//     // if (req.ip.split(':')[3] == '192.168.66.133') {
//     //     name = '郭朝夕'
//     // }
//     // if (req.ip.split(':')[3] == '192.168.66.113') {
//     //     name = '杨欢'
//     // }
//     // if (req.ip.split(':')[3] == '192.168.66.118') {
//     //     name = '杨尚坤'
//     // }
//     // if (req.ip.split(':')[3] == '192.168.66.116') {
//     //     name = '张仕'
//     // }
//     // if (req.ip.split(':')[3] == '192.168.66.139') {
//     //     name = '王朝阳'
//     // }
//     msgdata.push({
//         time: req.query.time,
//         msg: req.query.msg
//         // ip: req.ip.split(':')[3],
//         // name: name
//     });
//     fs.writeFile(
//         path.join(__dirname, "data/chatData.json"),
//         JSON.stringify(msgdata),
//         err => {
//             if (err) {
//                 console.log(err);
//             }
//         }
//     );
// });

//配置服务端口

app.listen(8080, function () {
    console.log("http://192.168.66.132:8080");
});
